<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>Internet 领域：TCP，UDP，SSL 和 TLS</title>

 </head>
 <body><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="transports.html">所支持的套接字传输器（Socket Transports）列表</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="transports.unix.html">Unix 领域：Unix 和 UDG</a></div>
 <div class="up"><a href="transports.html">所支持的套接字传输器（Socket Transports）列表</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div><hr /><div id="transports.inet" class="section">
    <h2 class="title">Internet 领域：TCP，UDP，SSL 和 TLS</h2>
    <p class="simpara">PHP 3，PHP 4，PHP 5。 
    <em>ssl://</em>&amp; 
    <em>tls://</em>自 PHP 4.3 起可用。</p>
    <p class="simpara">
    <em>sslv2://</em>&amp; 
    <em>sslv3://</em>自 PHP 5.0.2 起可用。</p>
    <blockquote class="note"><p><strong class="note">Note</strong>: 
      <span class="simpara">如果没有指定传输器，则假定为 
      <em>tcp://</em>。</span>
    </p></blockquote>
    <ul class="itemizedlist">
      <li class="listitem">
        <span class="simpara">
          <em>127.0.0.1</em>
        </span>
      </li>
      <li class="listitem">
        <span class="simpara">
          <em>fe80::1</em>
        </span>
      </li>
      <li class="listitem">
        <span class="simpara">
          <em>www.example.com</em>
        </span>
      </li>
      <li class="listitem">
        <span class="simpara">
          <em>tcp://127.0.0.1</em>
        </span>
      </li>
      <li class="listitem">
        <span class="simpara">
          <em>tcp://fe80::1</em>
        </span>
      </li>
      <li class="listitem">
        <span class="simpara">
          <em>tcp://www.example.com</em>
        </span>
      </li>
      <li class="listitem">
        <span class="simpara">
          <em>udp://www.example.com</em>
        </span>
      </li>
      <li class="listitem">
        <span class="simpara">
          <em>ssl://www.example.com</em>
        </span>
      </li>
      <li class="listitem">
        <span class="simpara">
          <em>sslv2://www.example.com</em>
        </span>
      </li>
      <li class="listitem">
        <span class="simpara">
          <em>sslv3://www.example.com</em>
        </span>
      </li>
      <li class="listitem">
        <span class="simpara">
          <em>tls://www.example.com</em>
        </span>
      </li>
    </ul>
    <p class="simpara">Internet 领域套接字在目标地址中还期望有一个端口号。在 
    <span class="function"><a href="function.fsockopen.html" class="function">fsockopen()</a></span>中在第二个参数中指定，这样就不会影响传输器的 URL。然而在 
    <span class="function"><a href="function.stream-socket-client.html" class="function">stream_socket_client()</a></span>和相关的函数中是用传统的 URL，端口号在传输器 URL 后面以冒号分隔而指定。</p>
    <ul class="itemizedlist">
      <li class="listitem">
        <span class="simpara">
          <em>tcp://127.0.0.1:80</em>
        </span>
      </li>
      <li class="listitem">
        <span class="simpara">
          <em>tcp://[fe80::1]:80</em>
        </span>
      </li>
      <li class="listitem">
        <span class="simpara">
          <em>tcp://www.example.com:80</em>
        </span>
      </li>
    </ul>
    <blockquote class="note"><p><strong class="note">Note</strong>: 
      <strong>带端口号的 IPv6 数字地址</strong><br />
      <span class="simpara">在上面的第二个例子中，IPv4 和主机名的例子只加了一个冒号和端口号，但 IPv6 的地址被放在方括号中：
      <em>[fe80::1]</em>。这是为了将 IPv6 地址中的冒号和用来分隔端口号的冒号区别开来。</span>
    </p></blockquote>
    <p class="simpara">
    <em>ssl://</em>和 
    <em>tls://</em>传输器（仅在 openssl 支持已编译入 PHP 后可用）是 
    <em>tcp://</em>传输器加入 SSL 加密后的扩展。在 PHP 4.3.0 中 OpenSSL 支持必须被静态编译入 PHP，在 PHP 5.0.0 中可以编译为模块或者静态的。</p>
    <p class="simpara">
    <em>ssl://</em>将根据远程服务器的兼容性和参数设置尝试与之建立 SSL V2 或 SSL V3 链接 
    <em>sslv2://</em>和 
    <em>sslv3://</em>将明确的选择 SSL V2 或 SSL V3 协议进行连接。</p>
    <p class="para">
      <table class="doctable table">
        <caption><strong>
        <em>ssl://</em>和 
        <em>tls://</em>传输器的上下文选项（自 PHP 4.3.2 起）</strong></caption>
        
          <thead>
            <tr>
              <th>名称</th>
              <th>用法</th>
              <th>默认值</th>
            </tr>

          </thead>

          <tbody class="tbody">
            <tr>
              <td>
                <em>verify_peer</em>
              </td>
              <td>&amp;true; 或 &amp;false;。用于 SSL 证书请求验证。</td>
              <td>&amp;false;</td>
            </tr>

            <tr>
              <td>
                <em>allow_self_signed</em>
              </td>
              <td>&amp;true; 或 &amp;false;。允许自签名的证书。</td>
              <td>&amp;false;</td>
            </tr>

            <tr>
              <td>
                <em>cafile</em>
              </td>
              <td>本地文件系统中证书授权机构文件的位置，应和 
              <em>verify_peer</em>上下文选项一起使用来认证远端的身份。</td>
              <td class="empty">&nbsp;</td>
            </tr>

            <tr>
              <td>
                <em>capath</em>
              </td>
              <td>如果没有指定 
              <em>cafile</em>或者如果该处没找到证书，则在 
              <em>capath</em>指定的目录中搜索相配的证书。
              <em>capath</em>必须是一个正确的被散列化的证书目录。</td>
              <td class="empty">&nbsp;</td>
            </tr>

            <tr>
              <td>
                <em>local_cert</em>
              </td>
              <td>文件系统中本地证书文件的路径。必须是一个用 PEM 编码并包含你的证书和私人密钥的文件。可以选择包括发行者的证书链。</td>
              <td class="empty">&nbsp;</td>
            </tr>

            <tr>
              <td>
                <em>passphrase</em>
              </td>
              <td>你的 
              <em>local_cert</em>文件编码的 passphrase。</td>
              <td class="empty">&nbsp;</td>
            </tr>

            <tr>
              <td>
                <em>CN_match</em>
              </td>
              <td>所期待的 Common Name。PHP 能进行有限的通配符匹配。如果 Common Name 与此不匹配，连接尝试会失败。</td>
              <td class="empty">&nbsp;</td>
            </tr>

          </tbody>
        
      </table>

    </p>
    <blockquote class="note"><p><strong class="note">Note</strong>: 
      <span class="simpara">因为 
      <em>ssl://</em>是 
      <a href="wrappers.http.html" class="link">
        <em>https://</em>
      </a>和 
      <a href="wrappers.ftp.html" class="link">
        <em>ftps://</em>
      </a>封装协议的底层传输器，适用于 
      <em>ssl://</em>的任何上下文选项也适用于 
      <em>https://</em>和 
      <em>ftps://</em>。</span>
    </p></blockquote>
  </div><hr /><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="transports.html">所支持的套接字传输器（Socket Transports）列表</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="transports.unix.html">Unix 领域：Unix 和 UDG</a></div>
 <div class="up"><a href="transports.html">所支持的套接字传输器（Socket Transports）列表</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div></body></html>
